{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "691d1d99",
   "metadata": {},
   "source": [
    "Chapter 4: Transportation Data"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d7b4d196",
   "metadata": {},
   "source": [
    "Script 4-1: Shortest Paths on Stores Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "970cf988",
   "metadata": {},
   "outputs": [],
   "source": [
    "#import packages\n",
    "import networkx as nx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "c9ff518f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{('store1', 'store2'): Text(0.6750186001288071, -0.3982874688892476, '2'),\n",
       " ('store1', 'store3'): Text(-0.20344590002290444, -0.7783634435208852, '2.4'),\n",
       " ('store1', 'store4'): Text(-0.24325661531174173, -0.2002662609759025, '3'),\n",
       " ('store1', 'store5'): Text(0.30466711101078037, 0.06154141330698232, '3'),\n",
       " ('store2', 'store3'): Text(0.11625056956927571, -0.2997337390240974, '3.7'),\n",
       " ('store2', 'store4'): Text(0.07643985428043842, 0.27836344352088527, '1.4'),\n",
       " ('store2', 'store5'): Text(0.6243635806029606, 0.54017111780377, '4.3'),\n",
       " ('store3', 'store4'): Text(-0.8020246458712731, -0.10171253111075229, '4.9'),\n",
       " ('store3', 'store5'): Text(-0.25410091954875097, 0.16009514317213253, '0.9'),\n",
       " ('store4', 'store5'): Text(-0.29391163483758825, 0.7381923257171152, '5.4')}"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#create the Stores network\n",
    "STRS = nx.Graph()\n",
    "STRS.add_nodes_from([\"store1\",\"store2\",\"store3\",\"store4\",\"store5\"])\n",
    "\n",
    "#define weights of ebunch\n",
    "e1 = [(\"store1\",\"store2\",2),(\"store1\",\"store3\",2.4),(\"store1\",\"store4\",3),(\"store1\",\"store5\",3)]\n",
    "e2 = [(\"store2\",\"store3\",3.7),(\"store2\",\"store4\",1.4),(\"store2\",\"store5\",4.3)]\n",
    "e3 = [(\"store3\",\"store4\",4.9),(\"store3\",\"store5\",0.9),(\"store4\",\"store5\",5.4)]\n",
    "\n",
    "#add edges\n",
    "STRS.add_weighted_edges_from(e1)\n",
    "STRS.add_weighted_edges_from(e2)\n",
    "STRS.add_weighted_edges_from(e3)\n",
    "\n",
    "#plot\n",
    "weight_labels=nx.get_edge_attributes(STRS,'weight')\n",
    "pos = nx.spring_layout(STRS)\n",
    "nx.draw(STRS,pos,with_labels=True,)\n",
    "nx.draw_networkx_edge_labels(STRS,pos,edge_labels=weight_labels) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "2ed418e0",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0. , 2. , 2.4, 3. , 3. ],\n",
       "       [2. , 0. , 3.7, 1.4, 4.3],\n",
       "       [2.4, 3.7, 0. , 4.9, 0.9],\n",
       "       [3. , 1.4, 4.9, 0. , 5.4],\n",
       "       [3. , 4.3, 0.9, 5.4, 0. ]])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#create adjacency matrix\n",
    "adj1 = nx.adjacency_matrix(STRS)\n",
    "adj1.todense() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "8e146c98",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'store1': 0, 'store2': 2, 'store3': 2.4, 'store4': 3, 'store5': 3}"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#find shortest paths starting at Store 1\n",
    "length1, path1 = nx.single_source_dijkstra(STRS,\"store1\")\n",
    "length1"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3ba11388",
   "metadata": {},
   "source": [
    "Script 4-2: A* algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "90bc87f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{('store1', 'store2'): Text(-0.5110901523075121, 0.38127465011205297, '2'),\n",
       " ('store1', 'store4'): Text(-0.33139442242833844, -0.10764499632803519, '3'),\n",
       " ('store2', 'store3'): Text(0.10826121168344023, 0.6076449963280353, '3.7'),\n",
       " ('store2', 'store4'): Text(-0.055243645530390434, 0.25022662442940297, '1.4'),\n",
       " ('store3', 'store4'): Text(0.28795694156261387, 0.11872534988794715, '4.9'),\n",
       " ('store4', 'store5'): Text(0.2853592529192898, -0.6193465110053425, '5.4')}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAb4AAAEuCAYAAADx63eqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA/ZUlEQVR4nO3de1zOd/8H8Nd1qK6OKlFyWNFohmaY8zSHhcyZ0WyY48JG7o057O7nHsN255TTNLSZO4fYzMIi5XwKNSFCJioqldR11XVd398f5ppUFqvrex1ez8ejx636dvX+uq1Xn8/38/58JIIgCCAiIjITUrELICIi0icGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRUGHxERmRW52AUQGbqsAhW2x6fhckY+8pVqOCjk8HZzwJBW9VDTzkrs8ojoOUkEQRDELoLIECXcysXK2BTEXbkHAFCptbrPKeRSCAB8m9RCYBcv+NR3FKdIInpuDD6icmw6kYr5UZehVGvwrP9CJBJAIZdhdm9vjGjnobf6iOjFcaqT6CmPQu8Sikq0f3utIABFJRrMj7oEAAw/IiPAxS1k1oKDgzFixAjd+wm3cjE/6nKlQu9JRSVazI+6jMS03FIf//XXX9GpUyc4OjrCzc0N48aNw4MHD6qidCJ6QQw+oiesjE2BUq2p9PWC9q9rlWoNVsWmlPp8Xl4e5syZgzt37uDSpUtIS0vDp59+WmX1EtHz4zM+MhuLFi3C8uXLkZ+fD3d3d4SEhGDAgAEQBAFWVlbw8GyIkv6L8PD+PeTsWwlV2kVIFfZwaDcI9q/1BADkHv4RJVk3IZFbovDqSTh1GwvbJp2QExMG5bUzgFSKTyaOxeKv5kMmk5WpYceOHfj3v/+N33//Xd+3T0R/4jM+MgvJyckIDQ3F6dOn4e7ujtTUVGg0GsyaNQspKSnYtGkT1sRdw5L9V5C162tYuDRAvcnfoyQ7DZkRcyB3dIO1x2sAgMKrJ1Gr/0zU7BMEQV2CrF1fQ2brCPcJ62ApFCPyl4Vo3MgTEyZMKFPHoUOH8Oqrr+r57onoSZzqJLMgk8mgUqlw8eJFlJSUwMPDA40aNSp1zeWMfDzMyYQq7SKcfEdBIreEpWtD2Pm8jYcXDuqus3L3hk3j9pBIpBCKC1F0/Qycuo2D1FIBtZUDXukxDBEREWVqiI6ORnh4OObNm1ft90tEFeOIj8yCl5cXli5diuDgYCQlJcHPzw8hISGlrslXqqEpyIFUYQeplY3u4/IatVGc8dezO5mDi+7P6ry7gEaDtNAPdB+7IxHwckOPUq994sQJBAQEYPv27WjcuHEV3x0RPQ8GH5mNgIAABAQEID8/HxMmTMCMGTPg5eWl+7yDQg6ZnTO0ygJoVYW68FPn34PMrqbuOolEovuzzKEWJHIL1P9kMyTSR8/0lJcOwS49FuPGjYOPjw+sra0xc+ZMrF+/Ht26ddPT3RJRRRh8ZBaSk5Nx+/ZtdOzYEQqFAtbW1tBqtXB1dUV0dDS0Wi283Rxg6+wKq7reyI0Lh1PXMSjJuY2ChGi4vDO93NeV2zlD4dES9w+EwfHN92FtY4P3+/midkE9yGQyHDx4ED/99BNkMhmmTJmCdevWwcfHBz4+PmjRogUaNWpU7iIYIqo+XNVJZiExMRFjx47FpUuXYGFhgQ4dOuDbb7+FlZUV+vXrh6SkJNR/yQOF/l9CmZv1aFXn7UuQKuzg0HYg7Fv2BvBoVac6Nx0u7/xL99pa5UPcj9uIopRTEIqL8GqTlzHr85kYNmwYRo8ejfDwcNjY2EAQBGi1WtjZ2aFjx45ISEjAvXv38Oqrr+qC8PH/1qhRQ6y/KiKTx+AjApCRkYHp06fjqKQpJPV9IEDy91/0FIkE8GvqijUjWlf6a/Ly8vD7778jISEBiYmJSEhIwIULF+Di4lImDDk6JKoaDD4yaxqNBmvXrsW///1vjBkzBv3HfILRPySgqKTyTeyPWVvIsGV8O7So5/iPa7p+/XqpMExMTMS9e/fQrFmzUmHI0SHR82Pwkdk6e/YsJk6cCIVCgdWrV+v6655nr87HrC2kmN37lWrdqzMvLw+JiYmlwvDChQuoVatWqTD08fFBo0aNIJWyW4moPAw+Mjv5+fmYO3cutmzZgoULF2LkyJGlVmoCz3c6g6AuRiebu9gUXLZhvbo9OTp8coSYlZWFZs2alQrD5s2bc3RIBAYfmRFBELBt2zZMmzYNvXv3xsKFC1GzZs0Kr09My8Wq2BQcTL4HCQBlOefxvdWkFgY3dcAHfXzxww8/GEy7Qm5ubplnh0lJSRwdEoHBR2YiJSUFkyZNwp07d7BmzRp07Nix0l+bXaDC9rNpuJz+APnKEjgoLOBdxx6DX//rBPaYmBi89957OH36NOrVq1ddt/GPaDQaXLt2rdRUKUeHZI4YfGTSVCqVbnPqmTNn4pNPPoGFhUW1fK+FCxdi165diI2NhaWlZbV8j+rwrNFheStLOTokY8fgI5N14MABBAYGomnTpli2bBkaNGhQrd9Pq9ViwIAB8PDwwLJly6r1e1W3x6PDp1eWZmdnl7uy1MHBQeySiSqNwUcmR9eTd/QoVqxYgXfeeUdv3zs3NxetW7fGf/7zHwwfPlxv31dfnhwdPrmytHbt2qV2pPHx8UHDhg2rZHQYFRWFw4cP44033kC7du1Qp06dKrgTMmcMPjIZT/fkzZ07F7a2tnqv4/z58+jRowdiY2PN4giiJ0eHT44Qc3JySo0OHz87fN7R4alTp7Bt2zakpqaioKAA33zzDV599VVotVpIpVI8fPgQUqkU1tbW1XSHZGoYfGQSKurJE8vGjRuxcOFCnD59Gvb29qLWIpbc3NxSfYePnx26urqWCsMWLVpUenQ4ZMgQ+Pn5YezYsbqPxcbG4quvvtIt0qlZsyYmTZpU5tgposcYfGTUKtOTJ5bx48cjNzcXW7ZsMZiaxKbRaJCSklJmZWlOTg6++eYbjB07tsy2bIIgICQkBJ6enliyZAlmz56Nnj17lnnt9PR07N69GxMmTMD+/fvRtWtXfd0WGRkGHxml5+3JE4NSqUSnTp0wYsQITJ06VexyDNr9+/chCAKcnZ3LfO7hw4f47LPPcPjwYbz33nuYMWNGqc8LgqD7xWLJkiVITU3FkiVLuPqUKsTgI6PzT3ry9C01NRVt27ZFZGQkOnXqJHY5Ri0hIQHz5s3D5s2bYWVlVebzFy5cQP/+/bF3795S5ywSPY2/EpHRUKlUmDdvHtq1a4cePXrg7NmzBh16AODh4YGNGzdi2LBhyMjIELsco1JSUgKN5q/Nwh88eIC6devi7NmzAB61jzyWk5ODiIgIdOrUCV5eXqU+R/Q0HkRLRuHJnryzZ89We09eVerVqxfGjBmDYcOGYf/+/ZDL+Z9dZSiVSvzrX4/OPXzrrbewa9cuNGzYEM2bNwcASKVSqNVqyOVyREZGIjMzE4GBgWVe5+HDh/jvf/+ra8hv3ry52S44okc41UkGTcyevKqk0WjQu3dvvPbaa1i0aJHY5RgFQRAQHx+PEydOID4+Hk2bNkVQUBCioqKQm5uLgQMH6tpVWrVqhaCgILz33ntlXker1WL16tU4d+4cEhMTkZSUBDc3tzJ7lnp6evK5oJlg8JFB0mg0WLNmDYKDg0XtyatKWVlZaNWqFZYuXYoBAwaIXY7Rys3NRXp6Ory9vSGRSBAZGYn169dj8+bNldpfVKPR4OrVq2VWlt6/fx/Nmzcvs2cpR4emh8FHBic+Ph4TJ06EtbW1QfTkVaXTp0/D398fR48excsvvyx2OSajuLj4H++PmpOTU2bP0osXL8LNza3MnqUcHRo3Bh8ZjLy8PF1P3qJFiwyqJ68qrVmzBqtWrcKJEydgY2Mjdjn0DI9Hh0/vWfrk6PBxGHJ0aDwYfCQ6QRCwdetWBAUFGWxPXlUSBAEjR44EAISHh5tkuJu6yo4OfXx84OHhwdGhgWHwkaiMqSevKhUWFqJdu3YIDAzExIkTxS6HqoBarUZKSkqZ0WFubi6aN29eaqqUo0NxMfhIFPo8J89QXb16FR07dsTu3bvxxhtviF0OVZOcnJxSe5YmJibi4sWLqFOnTpmVpRwd6geDj/Ru//79CAwMxKuvvqqXc/IM2c6dOzFt2jScOXMGLi4uYpdDeqJWq8tdWZqXl1dmZWmzZs0McnSYVaDC9vg0XM7IR75SDQeFHN5uDhjSqh5q2pXdWceQMPhIbzIyMhAUFIRjx44ZdU9eVZsxYwbOnz+PqKioMhs0k3l5PDp8+tmhu7t7mZWlYo0OE27lYmVsCuKu3AMAqNR/7ZKjkEshAPBtUguBXbzgU99R7/VVBoOPqt2TPXljx47FnDlzjL4nryqp1Wp0794dvr6+CA4OFrscMjBPjw4fh+KTo8Mnnx3a2dlVWy2bTqRiftRlKNUaPCs5JBJAIZdhdm9vjGjnUW31vCgGH1UrU+7Jq0oZGRlo3bo11q1bh169eoldDhmB7OzscleWVtfo8FHoXUJRSeX3QbW2kGJ271cMLvwYfFQtHvfkbd261eDOyTNUR44cwaBBg3Dy5El4eHiIXQ4Zocejw6dXlubn55e7srS80WFwcDBSUlKwadMm3ccSbuVi2LoTKCrRlLn+71hbyLBlfDu0qOcIADh48CA+/vhj3Lp1CzKZDG+++SZCQ0NRt27dF77v58Xgoyplbj15VW3JkiX48ccfceTIESgUCrHLIRORnZ1d7srSunXrlllZunHjRly7dq1U8I3/4QyiL2U+c3rzMUGrgUT617NqiQTwa+qKNSNaAwAyMzOh0Wjg7u4OlUqFuXPn4vLly9i1a1eV33dFGHxUZR735KWnp2P16tVm05NXlQRBwNChQ+Hs7Iy1a9eKXQ6ZMLVajRkzZmDDhg14+PAhLCwsoFAokJ2dDYlEAplMBldXV3z341Z8tOMaMqJCoUq7CKnCHg7tBsH+tZ4AgNzDP6Ik6yYkcksUXj0Jp25jYdukE3JiwqC8dgaQSFDDpwcu/boetWuU3qlIpVIhODgYP//8My5evKi3e2fw0T/2ZE/e559/jo8//tjsevKq0oMHD9CmTRvMnDkTo0aNErscMlHJycno3r07Tp48CXd3d6SmpkKj0WDt2rU4d+4c/P39kZiYiOO5drhx+gAsannAudtYlGSnITNiDlz6fQZrj9eQe/hH5B3filr9Z8L65bYQ1CXI2vU1ZLaOcOo6FkKJElmR8zBw+Pv48Zs5AIA//vgDLVq0QH5+PmQyGdatW6fXf+vslKR/ZP/+/WjevDnOnTuHs2fPYvr06Qy9f8je3h47duzAp59+ioSEBLHLIRMlk8mgUqlw8eJFlJSUwMPDA40aNYKNjQ1cXV0xdepUrF+/Hh269YLq9mU4+Y6CRG4JS9eGsPN5Gw8vHNS9lpW7N2wat4dEIoVQXIii62fg1G0cpJYKyGwdYde6Hw7t+Vl3fYMGDZCbm4usrCx8+eWX8Pb21uu980RMeiHsyateTZs2xfLlyzFo0CCcOXMGjo6OYpdEJsbLywtLly5FcHAwkpKS4Ofnh5CQkDLX3c3MgFRhB6nVX9OU8hq1UZyRontf5vDX5gvqvLuARoO00A/+ehFBixoubmVe29nZGSNHjoSPjw9u376tt0OaOeKj56LRaLBy5Uo0b94cL730EpKSkhh61WT48OHo3bs3Ro4cCa228kvIiSorICAAR44cwc2bNyGRSDBjxowyq69ru7pBqyyAVlWo+5g6/x5kdn8tWnvya2QOtSCRW6D+J5vRYNqWR29B2zAqZEe5NajVaty9exf5+flVfHcVY/BRpcXHx6Ndu3bYsmULYmNj8dVXX7ERvZp98803uHv3LhYvXix2KWRikpOTERMTA5VKBYVCAWtra92CltTUVN0vW22aNYZ1vVeQGxcOQV2M4rs3UJAQDdtXfct9XbmdMxQeLXH/QBi0qkIIghbS/ExIMx8tXtmxYweSk5Oh1Wpx7949BAUFoWXLlnB2dtbXrTP46O/l5eXh448/hr+/PyZNmoS4uDg2ouuJpaUltm3bhmXLliEmJkbscsiEqFQqzJw5Ey4uLnBzc8Pdu3exYMECDBkyBABQs2ZNvP766xjcqh7cBsyAOu8u0kI/wL0d8+HYOQDWni0rfG2XPkEQtGrcCfsIt5YOw53I+fB2eNQDePv2bfTs2RP29vZo3rw5pFIpdu7cqZd7foyrOqlC7MkzHAcOHMCIESNw5swZvTb6EgHP18f3tKf7+AwBg4/KxZ48w/PVV1/hl19+QWxsLCwtLcUuh8xIwq1cDFx1CBo8/ybqT+/cYgg41UmlqFQqzJs3D+3atcPbb7+N+Ph4hp6BmDFjBlxcXPDZZ5+JXQqZmd8i1gHndkAhf77IeLRXp7dBhR7AdgazotVqn7lR7ZPn5J09e9asz8kzRFKpFOHh4WjdujXat2+Pd999V+ySyAyEhoZi9erVOHToEGLT1DydgYxDVlYWFixYAGdnZwwZMgRNmjQp9fmCggKMHz+ePXlG4vz58+jRowcOHTqEV155RexyyISFhYVh3rx5iIuLg6enJwAgMS0Xq2JTcDD5HiQAlOWcx/dWk1oI9PUyuJHeYww+ExcREYH//Oc/GDx4MAoKCnD9+nUsWbKk1O7/RUVFWLVqFSZOnMj2BCOxYcMGLF68GKdOnTLI07nJ+P3444/47LPPcPDgQTRu3LjM57MLVNh+Ng2X0x8gX1kCB4UFvOvYY/DrPIGdRPbdd9+hVq1a6Nu3LwCgV69eGD16NIYOHaq75u+mQMkwjRs3Dvn5+YiIiOCRT1SlIiMjMXnyZOzfv98kW5f4087EDRw4EL1790ZJSQkA4LXXXkNhYWGpaxh6xmnFihVISUnB8uXLxS6FTMju3bsRGBiIqKgokww9gMFn8pycnCCXy3UbR588eRK1a9cWuSqqCgqFAtu3b8eCBQtw9OhRscshExAdHY0PP/wQu3btQsuWFTeoGzsGn5lQq9XIy8uDRCJBt27dAADHjx+HRvP8JyqT4fD09MSGDRswbNgwZGZmil0OGbFDhw4hICAAkZGRaNu2rdjlVCsGn5mQy+UoLi6Gu7s7duzYgTfeeAO7d+8WuyyqAr1798bo0aMxfPhwqNVqscshI3TixAkMGjQI//vf/9C5c2exy6l2XNxiolQqFaysSq+s2rt3L3r37o23334bn3zyCXr16iVSdVTVNBoNevXqhVatWuGrr74SuxwyImfPnkXPnj2xYcMG+Pv7i12OXjD4TMzjc/IsLCzw3XfflTrf6vr169i5cyemT58uYoVUXbKystCqVSssX74c/fr1E7scMgIXLlxA9+7dsWrVKgwcOFDscvSGU50m4ulz8latWlXmUMeGDRsy9EyYi4sLtm7dinHjxiElJeXvv4DM2pUrV3SHz5pT6AEc8ZmE+Ph4TJw4EdbW1li9erXJLkGmylm9ejXWrFmD48ePw8bG5u+/gMzOjRs30KVLFwQHB+PDDz8Uuxy9Y/AZsby8PMyZMwfbtm3DwoULMXLkSDYyEwRBwAcffACpVIqNGzfy3wSVcuvWLXTp0gXTp0/HpEmTxC5HFJzqNEKCIGDLli1o2rQplEolkpKSMGrUKP6AIwCARCLBmjVrcPbsWaxbt07scsiAZGRkoFu3bggMDDTb0AM44jM6V69exaRJk5CRkYE1a9agQ4cOYpdEBurKlSuYN28ewsPDIZM9/zlqZFqysrLg6+uLd999F3PnzhW7HFEx+IyEUqnEokWLsGLFCnz++ef4+OOPdbuxEFVErVaXWeT0JEEQkJubCycnJz1WRfp2//59dO3aFb169cL8+fPNfnaIU51GYP/+/WjRogUSEhJw7tw5TJ8+naFHlfKs0NNqtQgLC0P//v3Z+G7C8vPz0bNnT3Tp0oWh9yeO+AzY456848ePY8WKFejTp4/YJZGJUSqVaNmyJd5++20sW7ZM7HKoij18+BC9evVC06ZNsXr1aobenzjiM0BP9+QlJSUx9KjK3b9/H7Nnz4aDgwPee+89scuhKqZUKtG/f394enpi1apVDL0nVDwPQqJ43JNnY2OD2NhY9uRRldFoNLpFLhcuXMCnn34KOzs7/Pbbb6hRowYEQeAPRxNRXFyMwYMHw9nZGd999x2PHnsK/zYMRF5eHqZMmQJ/f39MnjyZoUdVSq1WY+TIkTh//jwOHDiA999/H23btsW2bdtQo0YNaDQahp6JUKvVCAgIgFwux6ZNm575nNdc8W9EZIIgYOvWrQgKCoK/vz+SkpJQs2ZNscsiEyOXy9G9e3d06tQJHh4eWLp0Kbp37w6g9EiQjJtGo8HIkSNRUFCAn3/+mYvgKsDFLSJiTx7p2+TJkxEfH4/jx48DKD/0tFotp8aMkFarxfjx43Ht2jX8+uuv3K7uGfivWwRKpRL/93//h/bt28PPzw/x8fEMPdKL0NBQ9OnTB2fPngXwaMbhaQw94yMIAj7++GNcvHgRv/zyC0Pvb3CqU8/279+PwMBANGvWDOfOnUP9+vXFLonMTFBQEH744QfY29vj5ZdfBgDs2LED9erVQ1RUFLy9vREdHY3s7GwsXrwYjRs3FrliehZBEPDZZ5/hxIkTOHDgAOzs7MQuyeDxVzs9ycjIQEBAAMaNG4eQkBDs2LGDoUeisLa2RteuXXHv3j0Aj05zGDNmDP744w+4u7sDADIzM3H79m1cunRJzFKpEoKDg7Fv3z7s27cPNWrUELsco8Dgq2bsySND5OXlpZteHzFiBBo0aACFQoFx48bh6NGj8PHxwYIFC9CjRw+RK6VnWbhwIbZu3Yr9+/dzUdxz4FRnNWJPHhk6lUoFe3t7/PDDD+jVqxdat26NLl26oHPnznj99de52tOALVu2DGFhYYiLi0Pt2rXFLseocMRXDdiTR8bCysoKJSUlOHbsGOrVq4dTp05h4MCBaNOmDUPPgH377bdYsmQJDhw4gLp164pdjtHhiK8KsSePjNG9e/dw/vx5LFy4EFevXmUju4H7/vvvMW/ePMTGxuKll14SuxyjxD6+KsKePDJmGRkZqF27NlsZDNzWrVvxySefICYmBq+88orY5Rgt/iv/h9iTR6bAzc0NUqm03L4+Mgw///wzpkyZgr179zL0/iFOdf4D7MkjUyORSKDVapGTk4MHDx7A09NT7JIIwL59+zBu3DhERUXBx8dH7HKMHkd8LyA9PR3Dhw9nTx6ZJKlUin379sHf3x8FBQVil2P2NBoNVCoVdu7cidatW4tdjkngM77noNFosHr1avzf//0fxo4di7lz53JrIDJZY8eOxcOHD7F582YueNGj8vZK5UbiVYvBV0lnzpzBxIkTYWtri1WrVrE9gUxeUVEROnbsiNGjR2PKlClil2PSdu7cCTs7O3h4eOi2kaPqw6nOv/G4J69Pnz6YMmUKe/LIbFhbW2P79u348ssvcezYMbHLMVlffPEFQkJCkJCQgH79+mHz5s1Qq9Vil2XSuLilAoIgYMuWLZg+fTp78shsNWzYEOvXr8e7776L+Ph47hBSxRITE7F//37s27cP9vb2cHJywtixY6HRaPD+++9DEAROM1cDBl85rl69isDAQGRmZmLbtm1sTyCz5u/vj1GjRmHYsGH47bffeKJ3FXJ3d8crr7yC9PR02NvbY/jw4YiMjMTXX38NJycn7utbTTjV+YQne/J69uzJnjyiPwUHB0Mmk+GLL74QuxSTYmNjA0EQsHz5cixevBj9+vXDBx98gMWLFyM8PBxKpRJarVbsMk0Og+9P0dHRaN68ORISEnDu3DlMnz4dFhYWYpdFZBBkMhk2b96MTZs2YdeuXWKXYxI0Gg1sbGywdOlSNG3aFNbW1ujXrx+GDRuG5s2bw8nJCQqFgrvpVAOzX9WZnp6OoKAgnDhxAitWrODUAtEznDhxAn379sXx48fRqFEjscsxOr/99husrKzQpUsXAIBarS536njMmDFQq9UIDw/Xd4lmwWx/ldBoNAgNDUWLFi3g6enJc/KIKqFdu3b497//jUGDBqGwsFDscoyGIAi4efMm3nvvPXz++efYvXs3AEAul0OtVkOj0QAACgsLERYWhmvXrjH0qpFZjvie7MlbvXo1mjZtKnZJREZDEAS8//77kMvl2LBhA1cdPodPP/0UderUwZEjRzB06FAMGzaszMrNvLw8ODg48O+1GpnViK+8njyGHtHzkUgkWLt2Lc6cOYOwsDCxyzEKgiBAEARotVqUlJRgxIgR2L59O4KCgrBw4UIAwE8//YS4uDjUqFGDoVfNzCL4BEFAREQEmjZtCpVKhYsXL2LkyJH8x0X0gmxtbREZGYnZs2fjzJkzYpdj8CQSCSQSCd599104OTlh4MCB8PT0xJo1a1BcXAzg0VZl7du3F7lS82A0DTlZBSpsj0/D5Yx85CvVcFDI4e3mgCGt6qGmnVWFX/e4J+/u3bvsySOqQk2aNMHq1asxZMgQxMfHw9nZWeySDJ5CocCpU6cglUqxY8cOBAcH48CBA9i5cycGDhwodnlmw+Cf8SXcysXK2BTEXbkHAFCp/+ppUcilEAD4NqmFwC5e8KnvqPucUqnEokWLsGLFCsyaNQsff/wxG2+JqsG//vUvXLx4Ebt37+bS+78hCAL+9a9/YevWrfj+++/x1ltvISYmBq+//jocHR3FLs9sGHTwbTqRivlRl6FUa/CsKiUSQCGXYXZvb4xo54Ho6GgEBgaiRYsWWLp0KY8MIqpGJSUl6NatG3r06IG5c+eKXY5BenIBy+XLl1FYWIjXX3+9zOdIPww2+B6F3iUUlVR+1wKFXIo6GceRuv8HhIaGwt/fvxorJKLH0tPT0bp1a6xfvx5+fn5il2NQtFot7t27BycnJ1haWuo+zsATj+jzEsHBwRgxYkSpjyXcysX8qMvPFXoAoFRr8YdLa2yJPq4LvfT0dPTt2xfu7u6QSCRITU2tqtKJ6E916tTB//73P4wcORI3b94UuxyDIQgCJk+ejNGjR5d51MLQE4/owVeelbEpUKo1lbpW0Ja+TiuRYf2JNN37UqkUPXv2RGRkZJXWSESlvfnmm/j0008xZMgQqFQqscsRnSAImD59Os6cOYOIiAg+/zQgep3qXLRoEZYvX478/Hy4u7sjJCQEAwYMgCAIsLKyQqNGjXDg6Cm0nbMN6b+ugCrtIqQKezi0GwT713oCAHIP/4iSrJuQyC1RePUknLqNhW2TTsiJCYPy2hlAIkENnx649Ot61K7x1+noarUaFhYWuHHjBjw8PPR1y0RmRRAEDB48GK6urli1apXY5Yhqzpw52L17N2JiYrji1cDo7VeQ5ORkhIaG4vTp03jw4AH27dsHb29vzJo1C++++y4KCgqQkJCA7fFpSN+5CDJ7F9Sb/D1qDfgcuXHfoyj1vO61Cq+ehE2Tjqg/bQtsm/oi69clkEhlcJ+wDnVGL0fhjXOY9p8Qfd0aEf1JIpFgw4YNOHDgAH744QexyxHN/PnzsXPnTkRHRzP0DJDegk8mk+max0tKSuDh4VHuJrenL1xB0a2LcPIdBYncEpauDWHn8zYeXjiou8bK3Rs2jdtDIpFCKC5E0fUzcOo2DlJLBWS2jrBr3Q+H9vysr1sjoic4ODggMjISQUFB+P3338UuR++WLFmCjRs3Yv/+/ahVq5bY5VA59NbY5uXlhaVLlyI4OBhJSUnw8/NDSEjZUdndzAxIFXaQWv01TSmvURvFGSm692UOLro/q/PuAhoN0kI/+OtFBC2sa9TEnj170KhRI3h4eHB+nUiPmjVrhqVLl2LQoEE4ffo0atSoIXZJerF69WosX74ccXFxqFOnjtjlUAX02tEdEBCAgIAA5OfnY8KECZgxYwa8vLxKXVPb1Q1aZQG0qkJd+Knz70FmV1N3zZOroWQOtSCRW6D+J5shkcp0H3dX3cKSJUtw7do1pKWlwc3NDQAwc+ZMvPbaa2jUqJHuzVz+oyTSp/feew/Hjx/H6NGjERkZafKrGDdu3IivvvoKsbGxaNCggdjl0DPo9RlfTEwMVCoVFAoFrK2tIZPJ4OrqitTUVN0pw22aNYZ1vVeQGxcOQV2M4rs3UJAQDdtXfct9XbmdMxQeLXH/QBi0qkIIghbS/Ey093DAb7/9hmvXriErK0t3DIi3tzcyMjKwefNmjBo1CnXr1oWLiwvatm2LgIAAzJ07Fxs3bsThw4dx584dGGibI5FR+O9//4s7d+7gm2++EbuUahUREYFZs2YhOjoaDRs2FLsc+ht6W9WZmJiIsWPH4tKlS7CwsECHDh3w7bffwsrKCv369UNSUhI8PT3x26HjeGP2VmT8ugKq25cgVdjBoe1A2LfsDeDRqk51bjpc3vmX7rW1yoe4H7cRRSmnoC0ugqWjG1YsDMa4Ue8/uslyftN8fNuCICAzMxPXrl3TvV2/fl335wcPHqBhw4alRoiP3/fw8CjVkEpEZd26dQtt2rRBREQEfH19xS6nyu3cuRMfffQRoqOj0bx5c7HLoUowyJ1bxv9wBtGXMp+5TVlFJBLAr6kr1oxoXSW1PHjwoFQQPvl2+/Zt1KlTp1QoPvnm4OBQJTUQGbvo6GiMHDkSZ86cgbu7u9jlVJk9e/Zg5MiR2Lt3r24LMjJ8Bhl8CbdyMWzdCRSVVK6J/UnWFjJsGd8OLeo5Vn1hTykpKcHNmzfLDcXr16/DxsamwlB0c3Mz+WceRE/68ssvsW/fPsTExMDCwkLscv6xmJgYvPvuu9i1axePEzIyBhl8wIvt1WltIcXs3q9gRDuP6iuskgRBQEZGRpmp08dvDx8+hKenZ7mh6OHhYRI/GIiepNVq8c4778Db2xv//e9/xS7nHzl69Cj69++P7du3o0uXLmKXQ8/JYIMPePHTGYxBfn5+hVOod+7cgbu7e4WjRXt7e7HLJ3ohOTk5aN26NRYtWoQhQ4aIXc4LOX36NPz9/bFp0ya8/fbbYpdDL8Cggw8AEtNysSo2BQeT70GCRxtRP/b4PL63mtRCoK+XXqY39aG4uLjcKdTr16/j+vXrsLW1LXexDadQyRicPXsWfn5+OHz4MLy9vcUu57kkJCTg7bffRlhYGN555x2xy6EXZPDB91h2gQrbz6bhcvoD5CtL4KCwgHcdewx+/dknsJuaJ6dQy3srLCwsswr18dtLL73EKVQyCN999x1CQkJw8uRJ2NnZiV1OpVy8eBHdunXD8uXLjXa0So8YTfBR5eTn51cYiunp6ahbt265odiwYUNOoZJejRkzBkVFRfjxxx8NfpYiJSUFvr6+WLhwYZlj1Mj4MPjMSHFxMVJTU8t9tnj9+nXY29tXOFp0dXU1+B9OZFyKiorQoUMHjBkzBpMnTxa7nAqlpqaiS5cumDNnDsaNGyd2OVQFGHwE4NEUanp6eoWjRaVSWWEoNmjQgFOo9EKuX7+O9u3b46effjLIloDbt2/jzTffxNSpUzFlyhSxy6EqwuCjSsnLy6uwXzE9PR316tUrd/q0UaNG1fYM56OPPoJGo4GHhwf69u2LZs2aVcv3oeq1e/duBAYGIj4+3qBOM8jMzESXLl3w4Ycf4rPPPhO7HKpCDD76xx5PoZYXjDdu3IC9vX2FrRm1a9d+4SnUmJgYpKSk4MqVK7h9+zbWrl3L3XKM1Jw5c3DixAns27cPMpns77+gmmVnZ+Ott97CwIEDERwcLHY5VMUYfFSttFrtM6dQi4uLnzmFKpdX7gCRpk2bYvPmzXjttdeq94aoWmg0Gvj5+aFt27aYP3++qLXk5uaie/fu6NatGxYuXMhn2yaIwUeiys3NrXCD8IyMDNSvXx9ffvklhg4dWuZMxZSUFHzxxRdwdnZGbm4uVqxYAScnJ5HuhP6pe/fuoVWrVli5cqVoPXIPHjyAn58fWrdujWXLljH0TBSDjwyWSqVCamoqHB0d4erqWubzmZmZCA8Px+HDhzFkyBB88MFfhxELgsAfWkboxIkT6NevH44fP673430KCwvh7+8PLy8vrF27lodXmzAGHxm9Xbt2Ye/evVi6dKnumKgTJ05g4sSJ5U6h1q9fv9JTqKR/oaGh+O6773Ds2DFYW1vr5XuqVCr07dsXtWvXxsaNGw3iOSNVHwYfGZ2ioiJYWlrqfjht2rQJJ06cwJdffglHR0cAj36QXbhwodznipmZmahfv36Fjfy2trYi3h0JgoD33nsP1tbW+O6776r9+5WUlGDw4MGwtLTE//73P/5SZAYYfGR0srOz8dFHH0GtVsPb2xvnzp1DQEAARowYUanpTaVSWeEq1MdTqxWtQnVxceEUqh4UFBSgbdu2CAoKwpgxY6rt+6jVagQEBECpVGL79u08WNpMMPjIKF25cgWXL19GcnIyGjdujH79+lXJ62q1Wty+fbvCBTdqtbrczcE5hVr1kpOT0blzZ+zZswetWrWq8tfXarUYNWoUMjIysGvXLigUiir/HmSYGHxEz+H+/fsVtmbcvXsXDRo0qHAK1cbGRuzyjc727dvx6aefIj4+Hs7OzlX2uoIgYOLEibh8+TL27NnD/2/MDIOPqIoolUrcuHGjwilUZ2fnCqdQa9asySnUCkyfPh2XL1/GL7/8UiUrLQVBwNSpU3Hq1Cn89ttv3JzdDDH4iPRAo9HoplDL2yRcq9VW2Mhfv359s15lWFJSgq5du8LPzw9z5sz5R68lCAJmzZqFffv2ISYmRrcYiswLg4/IAOTk5FQ4hZqVlfXMKVR9LfkX0507d9CmTRts3LgRPXr0eOHX+c9//oOtW7fi4MGDcHFxqcIKyZgw+IgMXFFRUYVTqDdv3kTNmjXL3Rzc1KZQ4+LiMGzYMJw8eRINGjR47q//5ptvsG7dOsTFxcHNza0aKiRjweAjMmJPTqGW9yYIQoXPFevVq2d0U6jffPMNtm3bhkOHDsHKygpZBSpsj0/D5Yx85CvVcFDI4e3mgCGt6qGmnZXu60JDQxESEoJDhw6hXr16It4BGQIGH5GJEgThmVOo2dnZeOmll8oNRU9PT4OcQhUEAYMHD4bCvQls3xiIuCv3AAAqtVZ3jUIuhQDAt0ktBHbxwpnfIjFv3jzExcXBw8NDnMLJoDD4iMxUUVGRbqHN0wtubt68CRcXlwoX3Dg7O4s2hbru4GXMj7oEidwCAiquQSIB5BBQdPxHHPx2Hl5++WU9VkmGjMFHRGVoNBqkpaVVOFqUSCQVTqHWrVu32qZQN51IxfyoSygq0f79xX+ykkkwt09TjGjnUS01kfFh8BHRcxEEAdnZ2eUG4vXr15GdnQ0PD49yV6A2bNiw0jukBAcHIyUlBZs2bQIAJNzKxbB1J1BUonnumq0tZNgyvh1a1HMs9/OjR4/Gxo0bcfXqVXh5eT3365Nx4f5KRPRcJBIJXFxc4OLigrZt25b5fGFhYalVqFevXsXevXt1U6i1atWqcLT4rN1ZVsamQKmufOgJWg0k0kcjT6Vag1WxKVgzonWZ644cOYJr165V+nXJ+HHER0R6o9FocOvWrTIjxWPHjiEjIwOCIMDKygpt2rTBsWPHIJFIYGFhgQYveQBDQvDw/j3k7FsJVdpFSBX2cGg3CPav9QQA5B7+ESVZNyGRW6Lw6kk4dRsL2yadkBMTBuW1M4BUik8mjsXir+brpmLVajXatGmD8PBw+Pj4cMRnJjjiIyK9kclk8PDwgIeHB7p16wbg0WbU3bt3x61bt2BpaYkjR47gxo0bkMvl+OOPP+Du7o4bikaQFhUha9fXsHBpgHqTv0dJdhoyI+ZA7ugGa4/XAACFV0+iVv+ZqNknCIK6BFm7vobM1hHuE9bBUihG5C8L0biRJyZMmAAAWLJkCd588020aNFCrL8SEgGPGCYiUclkMqhUKly6dAmOjo4YMGAAgoKC0KVLF7Rv3x6HDx/G4LGfQFuUD1XaRTj5joJEbglL14aw83kbDy8c1L2Wlbs3bBq3h0QihVBciKLrZ+DUbRyklgqorRzwSo9hiIiIAADcunULa9euxbx588S6dRIJR3xEJCovLy8sXboUwcHBSEpKgp+fH0JCQkpdk69UQ1OQA6nCDlKrv05SkNeojeKMFN37Moe/tiFT590FNBqkhX6g+9gdCfByw5cAAFOnTsUXX3yBGjVqVNetkYHiiI+IRBcQEIAjR47g5s2bkEgkmDFjRqk+QQeFHDI7Z2iVBdCqCnUfV+ffg8yupu79J79G5lALErkF6n+yGQ2mbUGDaVswaeMRJCUlAQAOHDiATz/9FG5ubrotzNq3b4/NmzdX9+2SyBh8RCSq5ORkxMTEQKVSQaFQwNraGjKZDK6urkhNTYVWq4W3mwNsnV1hVdcbuXHhENTFKL57AwUJ0bB91bfc15XbOUPh0RL3D4RBqyqElQyoqc1BXFwcgEeHGSckJOD8+fM4f/48AOCXX37BgAED9HTnJBZOdRKRqFQqFWbOnIlLly7BwsICHTp0wLfffgsrKyts2rQJNWvWRP2XPIB3FsCl72fI2bcSaaEfQKqwg2PnAFh7tqzwtV36BOF+3EbcCfsIQnERtjZ5GV6fzwQA1K5du+z1Li4GuVUbVS22MxCRURj/wxlEX8rEi/zEkkgAv6au5fbxkfnhVCcRGYVJvl5QyF9sKzSFXIZAX/bn0SMMPiIyCj71HTG7tzesLZ7vx5ZQosIAD22F25WR+WHwEZHRGNHOA7N7vwJrCxn+7nAIieTRHp0ftnTEuhkjER8fr58iyeDxGR8RGZ3EtFysik3BweR7kABQlnMe31tNaiHQ1wst6jli586dmDRpEo4cOYKGDRuKVjcZBgYfERmt7AIVtp9Nw+X0B8hXlsBBYQHvOvYY/HrpE9gBYOXKlVi2bBmOHTsGFxeXCl6RzAGDj4jMxqxZs3Dw4EEcOHAANjY2f/8FZJIYfERkNgRBwKhRo5Cbm4vIyEjI5WxlNkdc3EJEZkMikSAsLAxKpRKTJk0Cf+83Tww+IjIrFhYW2L59O06fPo358+eLXQ6JgON8IjI79vb2iIqKQocOHVC3bl2MHj1a7JJIjxh8RGSW3NzcsGfPHnTp0gVubm7o1auX2CWRnnBxCxGZtePHj6Nv376IiopCmzZtxC6H9IDP+IjIrLVv3x5hYWHo168frl27JnY5pAec6iQis9evXz9kZGSgZ8+eOHr0aLlHFpHp4FQnEdGf5s6di3379uHgwYOwtbUVuxyqJgw+IqI/CYKADz/8EHfv3sXPP//MBncTxWd8RER/kkgk+Pbbb6HVavHRRx+xwd1EMfiIiJ5gYWGBbdu24dy5c5g3b57Y5VA14DieiOgpdnZ2+PXXX3UN7mPHjhW7JKpCDD4ionK4urpi7969ePPNN+Hm5oY+ffqIXRJVES5uISJ6hpMnT6JPnz7YvXs32rZtK3Y5VAX4jI+I6Bnatm2LDRs2oH///rh69arY5VAVYPAREf2NPn36YN68eejZsycyMzPFLof+IT7jIyKqhHHjxuH27dvw9/dHbGws7OzsxC6JXhCf8RERVZIgCLoA3LVrFywsLMQuiV4Ag4+I6Dmo1Wr069cPtWvXxvr16yGRSMQuiZ4Tn/ERET0HuVyOrVu3IikpCV988YXY5dAL4DM+IqLnZGtri927d6Njx46oV68eJkyYIHZJ9BwYfEREL6B27drYu3cvOnfujDp16qBv375il0SVxGd8RET/wOnTp9G7d2/s2rUL7du3F7scqgQ+4yMi+gfatGmD8PBwDBgwAMnJyWKXQ5XA4CMi+od69+6NBQsWoFevXsjIyBC7HPobfMZHRFQFPvzwQ9y+fRu9e/dGXFwc7O3txS6JKsBnfEREVUQQBEycOBGpqan45ZdfYGlpKXZJVA4GHxFRFVKr1Rg4cCAcHR0RHh7OBncDxGd8RERVSC6XIyIiAleuXMHs2bPFLofKweAjIqpiNjY22L17NyIjI7Fy5Uqxy6GncKqTiKiaXL9+HZ07d8amTZvw1ltviV0O/YnBR0RUjVJSUuDu7g4bG5sKr8nLy0ONGjX0WJV541QnEVE18vLyemboLViwAK+//jpu3Lihx6rMG0d8REQimTp1Ks6ePYv27dsjPj4ekZGRHPnpAYOPiEgE27Ztw4gRI5Camoo6depg5syZSExMRFRUlNilmTwGHxGRHmm1WkilUmi1WkybNg05OTn44YcfAABXrlxB48aNRa7Q9PEZHxGRnsTHx+O3334DAEilUixbtgwPHjzAlStXAIChpycMPiIiPVGpVJg0aRIuXboEANi9ezfS09Ph5OQkcmXmhVOdRER6FBERgYULF+KNN95AcXExWrZsicmTJ0Mqleq2NxMEARKJRPe/VLUYfEREehYdHY3s7Gy4u7ujadOmcHFxKfc6QRCg0Wggl/MgnarE4CMiEsnBgwdL7ehy/Phx1KhRAzt27EDt2rXx888/IzExEbt27ULLli1FrNS08BkfEZFI0tLSEBMTAwBYt24dhg4diuPHj8PV1RU2NjawtbVFp06doNFoRK7UtHD8TEQkkvfffx9arRYA0LlzZ1hYWKBRo0bw9fXFRx99hFdffRU9e/ZEq1atRK7UtHCqk4hIZCqVClZWVoiPj0f//v3h4+ODbt26wdfXl1Oc1YBTnUREIrOysgIAaDQaNGrUCDExMXjjjTcYetWEIz4iIgOQn5+PadOmoUuXLtBoNGjWrBnatGnDloZqwOAjIjIQmZmZAABXV1eRKzFtDD4iIgNWUlICCwsLscswKXzGR0RkoLRaLcaPH48tW7aIXYpJ4YiPiMiAJSYmonv37ti6dSt8fX3FLsckcMRHRGTAWrRogYiICAwdOhS///672OWYBAYfEZGB69q1K5YtWwZ/f3/cunVL7HKMHnduISIyAsOHD8ft27fRq1cvHDlyBI6OjmKXZLT4jI+IyEgIgoBp06bh/Pnz2Lt3LxQKhdglGSUGHxGREdFqtRg2bBiAR2f7SaV8YvW8+DdGRGREpFIpvv/+e2RmZiIoKAgcuzw/Bh8RkZFRKBT46aefsH//foSEhIhdjtHh4hYiIiPk5OSEPXv2oGPHjnB3d8fw4cPFLsloMPiIiIxU/fr18euvv6Jbt25wdXVF165dxS7JKHCqk4jIiDVv3hxbt27FsGHDkJCQIHY5RoHBR0Rk5Hx9fREaGgp/f3/cvHlT7HIMHqc6iYhMwNChQ3Hnzh1dg7uzs7PYJRks9vEREZmQ6dOn49SpU4iOjmaDewUYfEREJkSr1SIgIABqtRpbtmyBTCYTuySDw2d8REQmRCqVIjw8HNnZ2Zg6dSob3MvB4CMiMjFWVlbYuXMn4uLi8PXXX4tdjsHh4hYiIhPk6OiIPXv2oEOHDnB3d8eIESPELslgMPiIiExU3bp1ERUVha5du8LV1RU9evQQuySDwMUtREQm7vDhwxg0aBD27duHli1bil2O6PiMj4jIxHXu3BmrVq1Cnz59kJqaKnY5ouNUJxGRGRg8eDDS09PRs2dPHD16FDVr1hS7JNFwqpOIyIx89tlnOHLkCA4cOABra2uxyxEFg4+IyIxotVq8//77ePjwISIjI82ywZ3P+IiIzIhUKsWGDRtQUFCAKVOmmGWDO4OPiMjMWFpaYseOHTh27BgWLlwodjl6x8UtRERmyMHBAVFRUboG95EjR4pdkt4w+IiIzJS7uzv27NkDX19fuLm5wc/PT+yS9IKLW4iIzNzRo0fRv39/7N27F61atRK7nGrHZ3xERGauY8eO+Pbbb/HOO+/g+vXrYpdT7TjVSUREGDBgAO7cuYOePXvi2LFjcHFxEbukasOpTiIi0pk1axZiYmIQExMDGxsbscupFgw+IiLSEQQBI0eORG5uLnbs2AG53PQmBvmMj4iIdCQSCcLCwqBUKhEYGGiSDe4c8RERURkPHjxAly5dMGDAAMydO1f38awCFbbHp+FyRj7ylWo4KOTwdnPAkFb1UNPOSsSKK4/BR0RE5crIyECHDh0wZ84ctOoxECtjUxB35R4AQKXW6q5TyKUQAPg2qYXALl7wqe8oTsGVxOAjIqIKJScno+v4L2Db6QOUCMCzEkMiARRyGWb39saIdh56q/F5md5TSyIiqjKn71vBtvMHKNb8/bWCABSVaDA/6hIAGGz4cXELEREBAIKDgzFixAjd+wm3cjE/6nKlQu9JRSVazI+6jMS03FIfj42NhVQqhZ2dne4tPDy8Cip/PhzxERFRuVbGpkCprnzqCVoNJNJH5/sp1Rqsik3BmhGtS13j7u6OtLS0Kq3zeTH4iIjM0KJFi7B8+XLk5+fD3d0dISEhWLBgAQRBwE8//QQPz4Yo6b8IJfnZyNm3Eqq0i5Aq7OHQbhDsX+sJAMg9/CNKsm5CIrdE4dWTcOo2FrZNOiEnJgzKa2cQJpXCNnEsFn8136AOvOVUJxGRmUlOTkZoaChOnz6NBw8eYN++ffD29sasWbPw7rvvoqCgAJNDdwIAsnZ9DZm9C+pN/h61BnyO3LjvUZR6XvdahVdPwqZJR9SftgW2TX2R9esSSKQyuE9YB4+xKxD5yx6EhYXprr979y5cXV3h6emJadOm4eHDh/q+fQYfEZG5kclkUKlUuHjxIkpKSuDh4YFGjRqVuuZyRj4e5mRClXYRTr6jIJFbwtK1Iex83sbDCwd111m5e8OmcXtIJFIIxYUoun4GTt3GQWqpgNrKAa/0GIaIiAgAgLe3N86fP4/09HTExMQgPj4eQUFBer13gFOdRERmx8vLC0uXLkVwcDCSkpLg5+eHkJCQUtfkK9XQFORAqrCD1OqvPTvlNWqjOCNF977M4a/NrNV5dwGNBmmhH+g+dkcCvNzwJQCAm5sb3NzcAACenp5YvHgx/P39sXbt2mq5z4pwxEdEZIYCAgJw5MgR3Lx5ExKJBDNmzIBEItF93kEhh8zOGVplAbSqQt3H1fn3ILOrqXv/ya+ROdSCRG6B+p9sRoNpW9Bg2hZM2ngESUlJ5dYgkUhE2RKNwUdEZGaSk5MRExMDlUoFhUIBa2tryGQyuLq6IjU1FVqtFt5uDrB1doVVXW/kxoVDUBej+O4NFCREw/ZV33JfV27nDIVHS9w/EAatqhBWMqCmNgdxcXEAHrUz/PHHHxAEAbdu3cLMmTPRr18/Pd75Iww+IiIzo1KpMHPmTLi4uMDNzQ13797FggULMGTIEABAzZo1seqTwQAAl76fQZ13F2mhH+Dejvlw7BwAa8+WFb62S58gCFo17oR9hJRvhmLrwiCkp6cDAM6ePYv27dvD1tYWHTp0QLNmzbB8+fLqv+GncMsyIiIq1/gfziD6UuYztymriEQC+DV1LdPHZwg44iMionJN8vWCQv5i/XcKuQyBvl5VXFHVYPAREVG5fOo7YnZvb1hbPF9UWFtIMbu3N1rUc6yewv4htjMQEVGFHm80PT/qMpRqjUmczsBnfERE9LcS03KxKjYFB5PvQQJAWc55fG81qYVAXy+DHek9xuAjIqJKyy5QYfvZNFxOf4B8ZQkcFBbwrmOPwa/zBHYiIiKDxMUtRERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVhh8RERkVv4fJ1cc7h2FDXEAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#create a different Stores network\n",
    "STRS2 = nx.Graph()\n",
    "STRS2.add_nodes_from([\"store1\",\"store2\",\"store3\",\"store4\",\"store5\"])\n",
    "\n",
    "#define weights of ebunch\n",
    "e12 = [(\"store1\",\"store2\",2),(\"store1\",\"store4\",3)]\n",
    "e22 = [(\"store2\",\"store3\",3.7),(\"store2\",\"store4\",1.4)]\n",
    "e32 = [(\"store3\",\"store4\",4.9),(\"store4\",\"store5\",5.4)]\n",
    "\n",
    "#add edges\n",
    "STRS2.add_weighted_edges_from(e12)\n",
    "STRS2.add_weighted_edges_from(e22)\n",
    "STRS2.add_weighted_edges_from(e32)\n",
    "\n",
    "#plot\n",
    "weight_labels=nx.get_edge_attributes(STRS2,'weight')\n",
    "pos = nx.spring_layout(STRS2)\n",
    "nx.draw(STRS2,pos,with_labels=True,)\n",
    "nx.draw_networkx_edge_labels(STRS2,pos,edge_labels=weight_labels) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "d11d0e5c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['store2', 'store4', 'store5']"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#find shortest path from Store 2 to Store 5\n",
    "nx.astar_path(STRS2,\"store2\",\"store5\", weight='weight')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "66047bfd",
   "metadata": {},
   "source": [
    "Script 4-3: Traveling Salesman Problem"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "9b8c1a89",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['store1', 'store3', 'store5', 'store4', 'store2', 'store1']"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#define traveling salesman algorithm and apply it to the stores networks\n",
    "tsp = nx.approximation.traveling_salesman_problem\n",
    "tsp(STRS)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "2b179940",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['store1',\n",
       " 'store4',\n",
       " 'store5',\n",
       " 'store4',\n",
       " 'store2',\n",
       " 'store3',\n",
       " 'store2',\n",
       " 'store1']"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#apply TSP algorithm to the second stores networks\n",
    "tsp(STRS2)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1994481",
   "metadata": {},
   "source": [
    "Script 4-4: Maximum Flow/Minimum Cut Algorithm"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "b4cdbfef",
   "metadata": {},
   "outputs": [],
   "source": [
    "#build the city intersection network\n",
    "G1=nx.DiGraph()\n",
    "G1.add_edge(\"a\", \"b\", capacity=2.0)\n",
    "G1.add_edge(\"a\", \"d\", capacity=0.5)\n",
    "G1.add_edge(\"b\", \"d\", capacity=3.0)\n",
    "G1.add_edge(\"c\", \"d\", capacity=2.5)\n",
    "G1.add_edge(\"c\", \"e\", capacity=1.0)\n",
    "G1.add_edge(\"e\", \"f\", capacity=4.0)\n",
    "G1.add_edge(\"f\", \"g\", capacity=1.0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "d8a97443",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{('a', 'b'): Text(-0.567604752240033, 0.18135830275799097, '2.0'),\n",
       " ('a', 'd'): Text(-0.726853900310592, 0.1807546992189645, '0.5'),\n",
       " ('b', 'd'): Text(-0.7048010782322602, 0.24045572112290678, '3.0'),\n",
       " ('c', 'd'): Text(-0.522076158683626, 0.1386608682331067, '2.5'),\n",
       " ('c', 'e'): Text(0.15981867009122883, -0.06250208712467721, '1.0'),\n",
       " ('e', 'f'): Text(0.5896809109236588, -0.19489131278049315, '4.0'),\n",
       " ('f', 'g'): Text(0.8398111953002138, -0.23878227442525388, '1.0')}"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#plot network\n",
    "capacity_labels=nx.get_edge_attributes(G1,'capacity') \n",
    "pos = nx.spring_layout(G1) \n",
    "nx.draw(G1,pos,with_labels=True,) \n",
    "nx.draw_networkx_edge_labels(G1,pos,edge_labels=capacity_labels) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "b0b7232e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(0, ({'a', 'd', 'b'}, {'f', 'e', 'g', 'c'}))\n"
     ]
    }
   ],
   "source": [
    "#find cut-points\n",
    "partition = nx.minimum_cut(G1, \"a\", \"g\")\n",
    "print(partition)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "0f2a8171",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
